const Koa = require("koa");
const router = require("koa-router")();
const session = require("koa-session");
const cors = require("koa2-cors");
const bodyParser = require("koa-bodyparser");
const static = require("koa-static");
const app = new Koa();

//配置session的中间件
app.use(
  cors({
    credentials: true,
  })
);
app.keys = ["some secret"];

app.use(static(__dirname + "/"));
app.use(bodyParser());
app.use(session(app));

app.use((ctx, next) => {
  if (ctx.url.indexOf("login") > -1) {
    next();
  } else {
    console.log("session", ctx.session.userinfo);
    if (!ctx.session.userinfo) {
      ctx.body = {
        message: "登录失败",
      };
    } else {
      next();
    }
  }
});

router.post("/login", async (ctx) => {
  const { body } = ctx.request;
  console.log("body", body);
  //设置session
  ctx.session.userinfo = body.username;
  ctx.body = {
    message: "登录成功",
  };
});
router.post("/logout", async (ctx) => {
  //设置session
  delete ctx.session.userinfo;
  ctx.body = {
    message: "登出系统",
  };
});
router.get("/getUser", async (ctx) => {
  ctx.body = {
    message: "获取数据成功",
    userinfo: ctx.session.userinfo,
  };
});

app.use(router.routes());
app.use(router.allowedMethods());
app.listen(3000);
